﻿/**********************************************************************
 * @file   OperCSVIntermediateAmount.h
 * @brief  csv中间量操作器
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-02-14
 *********************************************************************/
#ifndef _OperCSVIntermediateAmount_H
#define _OperCSVIntermediateAmount_H

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"

namespace ModelOper
{
    /**
     * @brief FE传感器操作器
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-10-23
     */
    class OperCSVIntermediateAmount :public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief Construct a new Operators CSVIntermediateAmount object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-10-23
         */
        explicit OperCSVIntermediateAmount() = default;
        /**
         * @brief Destroy the Operators CSVIntermediateAmount object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-10-23
         */
        virtual ~OperCSVIntermediateAmount() = default;
        /**
         * @brief 执行
         * @return true 成功
         * @return false 失败
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-10-23
         */
        virtual bool execGUI() override;
        /**
         * @brief 执行结果处理
         * @return true 成功
         * @return false 失败
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-10-23
         */
        virtual bool execProfession() override;

    private slots:
        /**
         * @brief  拾取完成
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2025-02-21
         */
        void slotPickOverEvent();

    };

    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionModalDensityResult, OperCSVIntermediateAmount);
    Register2FITKOperatorRepo(actionLossFactorResult, OperCSVIntermediateAmount);
    Register2FITKOperatorRepo(actionCouplingLossFactorResult, OperCSVIntermediateAmount);
    Register2FITKOperatorRepo(actionRadiationEfficiencyResult, OperCSVIntermediateAmount);
}

#endif